package com.zhihuitong.meeting.utils;

import android.content.Context;
import android.widget.ImageView;

import com.bumptech.glide.Glide;
import com.bumptech.glide.load.engine.DiskCacheStrategy;


/**
 * 作者: 郭源
 * 日期: 2017/3/21
 * 描述:
 */

public class ImageLoader {


    /**
     * 原生加载图片
     *
     * @param url
     * @param erroImg
     * @param emptyImg
     * @param iv
     */
    public static void glideLoader(Context context, String url, int erroImg, int emptyImg,
                                   final ImageView iv) {

        Glide.with(context).
                load(url)
                .diskCacheStrategy(DiskCacheStrategy.ALL)
                .placeholder(emptyImg)
                .error(erroImg)
                .into(iv);

    }


    /**
     * 原生加载图片
     *
     * @param url
     * @param emptyImg
     * @param iv
     */
    public static void glideLoader(Context context, String url, int emptyImg, ImageView iv) {
        //原生 API
        glideLoader(context, url, 0, emptyImg, iv);
    }

    /**
     * 原生加载图片
     *
     * @param url
     * @param iv
     */
    public static void glideLoader(Context context, String url, ImageView iv) {
        //原生 API
        glideLoader(context, url, 0, 0, iv);
    }


    /**
     * 加载圆角图片
     *
     * @param url
     * @param erroImg
     * @param emptyImg
     * @param iv
     */
    public static void radiusLoader(Context context, String url, int erroImg, int emptyImg,
                                    ImageView iv, int radius) {

        if (radius == 0) {
            radius = 10;
        }

        Glide.with(context).
                load(url)
                .transform(new
                        GlideRoundTransform(context, radius))
                .diskCacheStrategy(DiskCacheStrategy.ALL)
                .placeholder(emptyImg)
                .error(erroImg)
                .into(iv);

    }

    /**
     * 加载圆角图片
     *
     * @param url
     * @param emptyImg
     * @param iv
     */
    public static void radiusLoader(Context context, String url, int emptyImg,
                                    ImageView iv, int radius) {
        if (radius == 0) {
            radius = 10;
        }
        radiusLoader(context, url, 0, emptyImg, iv, radius);
    }

    /**
     * 加载圆角图片
     *
     * @param url
     * @param iv
     * @param radius
     */
    public static void radiusLoader(Context context, String url,
                                    ImageView iv, int radius) {
        if (radius == 0) {
            radius = 10;
        }
        radiusLoader(context, url, 0, 0, iv, radius);
    }

    /**
     * 加载圆行图片
     *
     * @param url
     * @param erroImg
     * @param emptyImg
     * @param iv
     */
    public static void loaderRounded(Context context, String url, int erroImg, int emptyImg,
                                     ImageView iv) {




        Glide.with(context).
                load(url)
                .placeholder(emptyImg)
                .error(erroImg)
                .transform(new GlideCircleTransform(context))
                .diskCacheStrategy(DiskCacheStrategy.ALL)
                .into(iv);
    }

    /**
     * 加载圆行图片
     *
     * @param url
     * @param emptyImg
     * @param iv
     */
    public static void loaderRounded(Context context, String url, int emptyImg,
                                     ImageView iv) {
        loaderRounded(context, url, 0, emptyImg, iv);
    }

    /**
     * 加载圆行图片
     *
     * @param url
     * @param iv
     */
    public static void loaderRounded(Context context, String url,
                                     ImageView iv) {
        loaderRounded(context, url, 0, 0, iv);
    }
}
